home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 126-150 / 141 / smallc / ccdefs.c < prev    next >
Text File  |  1995-03-13  |  3KB  |  151 lines

  1. /************************************************/
  2. /*                                              */
  3. /*              Small-C compiler                */
  4. /*                                              */
  5. /*                by Ron Cain                   */
  6. /*          modified by Willi Kusche            */
  7. /*                                              */
  8. /************************************************/
  9.  
  10. #define BANNER  "* * *  Small-C  V2.0  * * *"
  11.  
  12. /*      Define system dependent parameters      */
  13.  
  14.  
  15. /*      Stand-alone definitions                 */
  16.  
  17.  
  18. #define NULL 0
  19. #define targeol 10
  20.  
  21. /*      UNIX definitions (if not stand-alone)   */
  22.  
  23.  
  24. /* #include <stdio.h>   */
  25. /* #define eol 13     */
  26.  
  27.  
  28. /*      Define the symbol table parameters      */
  29.  
  30.  
  31. #define symsiz  14
  32. #define symtbsz 5040
  33. #define numglbs 300
  34. #define startglb symtab
  35. #define endglb  startglb+numglbs*symsiz
  36. #define startloc endglb+symsiz
  37. #define endloc  symtab+symtbsz-symsiz
  38.  
  39.  
  40. /*      Define symbol table entry format        */
  41.  
  42.  
  43. #define name    0
  44. #define ident   9
  45. #define type    10
  46. #define storage 11
  47. #define offset  12
  48.  
  49.  
  50. /*      System wide name size (for symbols)     */
  51.  
  52.  
  53. #define namesize 9
  54. #define namemax  8
  55.  
  56.  
  57. /*      Define data for external symbols        */
  58.  
  59. #define extblsz 2000
  60. #define startextrn exttab
  61. #define endextrn exttab+extblsz-namesize-1
  62.  
  63. /* Possible types of exttab entries */
  64. /* Stored in the byte following zero terminating the name */
  65.  
  66. #define rtsfunc 1
  67. #define userfunc 2
  68. #define statref 3
  69.  
  70.  
  71. /*      Define possible entries for "ident"     */
  72.  
  73.  
  74. #define variable 1
  75. #define array   2
  76. #define pointer 3
  77. #define function 4
  78. #define argument        5
  79.  
  80.  
  81. /*      Define possible entries for "type"      */
  82.  
  83.  
  84. #define cchar   1
  85. #define cint    2
  86. #define cchararg        3
  87.  
  88. /*      Define possible entries for "storage"   */
  89.  
  90.  
  91. #define statik  1
  92. #define stkloc  2
  93.  
  94.  
  95. /*      Define the "while" statement queue      */
  96.  
  97.  
  98. #define wqtabsz 100
  99. #define wqsiz   4
  100. #define wqmax   wq+wqtabsz-wqsiz
  101.  
  102.  
  103. /*      Define entry offsets in while queue     */
  104.  
  105.  
  106. #define wqsym   0
  107. #define wqsp    1
  108. #define wqloop  2
  109. #define wqlab   3
  110.  
  111.  
  112. /*      Define the literal pool                 */
  113.  
  114.  
  115. #define litabsz 3000
  116. #define litmax  litabsz-1
  117.  
  118.  
  119. /*      Define the input line                   */
  120.  
  121.  
  122. #define linesize 80
  123. #define linemax linesize-1
  124. #define mpmax   linemax
  125.  
  126.  
  127. /*      Define the macro (define) pool          */
  128.  
  129.  
  130. #define macqsize 1000
  131. #define macmax  macqsize-1
  132.  
  133.  
  134. /*      Define statement types (tokens)         */
  135.  
  136.  
  137. #define stif    1
  138. #define stwhile 2
  139. #define streturn 3
  140. #define stbreak 4
  141. #define stcont  5
  142. #define stasm   6
  143. #define stexp   7
  144.  
  145.  
  146. /* Define how to carve up a name too long for the assembler */
  147.  
  148.  
  149. #define asmpref 7
  150. #define asmsuff 7
  151.